-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checkpointing, NetCDF, and golden master tests #140
Conversation
But need to be able to serialize functions first...
Codecov Report
@@ Coverage Diff @@
## master #140 +/- ##
========================================
+ Coverage 56.78% 60% +3.21%
========================================
Files 19 19
Lines 597 620 +23
========================================
+ Hits 339 372 +33
+ Misses 258 248 -10
Continue to review full report at Codecov.
|
Codecov Report
@@ Coverage Diff @@
## master #140 +/- ##
==========================================
+ Coverage 56.03% 65.97% +9.94%
==========================================
Files 19 19
Lines 605 629 +24
==========================================
+ Hits 339 415 +76
+ Misses 266 214 -52
Continue to review full report at Codecov.
|
metadata, grid, stepper_tmp = model.metadata, model.grid, model.stepper_tmp | ||
if metadata.arch == :cpu | ||
if metadata.arch == :CPU |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we save FFT plans?
It makes sense that a user should plan new FFTs if they are going to run a model, even if they are restarting a checkpoint on the same computer.
@christophernhill what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't. We set model.poisson_solver = nothing
before checkpointing then reconstruct the FFT plans afterwards.
So you're saying the user should be manually planning the FFTs themselves?
Note to self: Seems like the golden master tests fail on Mac (Travis CI) so it seems that JLD might not be portable (although I generated the JLD checkpoint files on Windows and the Linux tests pass). So for golden master testing I should rely on NetCDF output which is guaranteed to be portable. EDIT: Hmmm, it might actually just be finicky (sometimes passes, sometimes doesn't). Another reason to use NetCDF. But so far if I keep running the tests on my laptop it always passes. |
I think there's an issue with the pseudorandom number generator being portable. We still have the thermal bubble golden master test.
@jm-c and I discussed this PR yesterday and seemed good to merge. Looks like the tests work now so I'm merging. |
Checkpointing, NetCDF, and golden master tests Former-commit-id: ecc0e46
Call them system tests, model verification tests, or end-to-end tests, that's what this PR is about.
Currently a work in progress as I hit a roadblock with checkpointing so the tests will fail. See #141. BUT, for testing we can just set
model.forcings = nothing
and manually reconstruct the forcings as we know them.Tests implemented so far:
@jm-c @christophernhill: do post any ideas for tests that should be implemented in this PR.